Method and apparatus for facilitating user chat interactions

ABSTRACT

A computer-implemented method and an apparatus facilitate user chat interactions. A chat widget offering chat-based assistance is displayed on one or more Web pages of an enterprise Website. In response to a user selection of the chat widget, a chat window is displayed at a first predetermined position on a Web page. The chat window is repositioned to a second predetermined position in response to a user input indicative of provisioning of a text input. The repositioning of the chat window enables display of a virtual keyboard. The placement of the chat window and the virtual keyboard enables the user to view a substantial portion of the Web page. The chat window is caused to scroll with the Web page in response to a Web page scroll input provided by the user and slide back to a previous position subsequent to completion of a scroll movement of the Web page.

TECHNICAL FIELD

The present invention generally relates to interactions betweenenterprises and users of enterprise offerings, and more particularly toa method and apparatus for facilitating chat interactions between usersand agents of an enterprise.

BACKGROUND

Existing and potential users of enterprise offerings routinely engage ininteractions with the enterprises to enquire about products/services ofinterest, to resolve concerns, to make payments, to lodge complaints,etc. The interactions may be conducted over one or more interactionchannels, such as a Web channel, a voice channel, a chat channel, aninteractive voice response (IVR) channel, a social media channel, anative mobile application channel, and the like.

Generally, engaging in one-to-one chat conversations with visitors to anenterprise Website has been known to boost sales of an enterprise and/orimprove a quality of user interaction experiences. Such live chatsupport solutions typically involve displaying a chat option on Webpages of the Website. An online visitor to the Website may select thechat option to initiate an interaction with an agent of an enterprise.The selection of the chat option may result in display of a chat window.On touch-enabled devices, if a user wants to communicate via an inputfield of the chat window, a virtual keyboard may be displayed to theuser. Upon display of the virtual keyboard, the chat window may be movedto a position directly above the virtual keyboard.

Some existing techniques opt for a full screen chat experience, wherethe chat window may occupy a full screen of a mobile device. However,full screen chat windows may prevent the user from scrolling the hostWebsite with the chat window and the virtual keyboard displayed.Further, in some solutions the chat window may get pushed above a screenview of the mobile device when the virtual keyboard is displayed due. Asa result, a header of the chat widget may not be accessible unless theuser scrolls up to a top of the chat window or collapses the virtualkeyboard.

Other existing solutions may affix the chat window to a bottom or a sideportion of a Web page, which may enable the user to scroll the hostWebsite with the chat window open. However, in some cases the user maybe taken away from a focal point on the host Website when the keyboardopens because the Web page may scroll to the bottom. In some othersolutions, the chat window may disappear below the Web page when theuser attempts to scroll the Web page thereby disorienting the user,specifically when the user may be typing a message in the chat window.

In some scenarios, when the user attempts to navigate the host Websitewith the chat window open and the virtual keyboard displayed, certainbrowser related issues may occur. For example, a jarring flicker effectmay occur when the user attempts to scroll the Web page with the chatwindow open. The movement of the chat window due to the scrolling inputprovided by the user may cause the back-end server to recalculate theposition of the chat window on the Web page, thereby causing the jarringflicker effect. Moreover, when the user attempts to scroll the Web pagewith the chat window open and virtual keyboard displayed, the Web pagemay appear locked and, in addition to the flickering, the Website maysnap back to the top of the Web page, thereby preventing the user fromscrolling the Web page.

As such, existing mechanisms for positioning chat windows and scrollinga host website simultaneously pose several limitations. Accordingly,there is a need to overcome the aforementioned drawbacks and facilitateuser chat interactions in a hassle-free manner.

SUMMARY

In an embodiment of the invention, a computer-implemented method forfacilitating user chat interactions is disclosed. The method effects, bya processor, display of a chat widget on one or more Web pages of aWebsite associated with an enterprise. In response to a user selectioninput corresponding to the chat widget displayed on the Web page, themethod effects, by the processor, display of a chat window at a firstpredetermined position on a Web page of the Website. The chat windowfacilitates a chat interaction between the user and an agent associatedwith the enterprise. The display of the chat window at the firstpredetermined position is configured to retain display of a substantialportion of the Web page to the user. In response to an input indicativeof provisioning of a text input from the user, the method causes, by theprocessor, repositioning of the chat window to a second predeterminedposition to enable display of a virtual keyboard at a portion of the Webpage including the first predetermined position. In response to a scrollinput corresponding to the Web page from the user during the chatinteraction between the user and the entity, the method causes, by theprocessor, the chat window to scroll with the Web page and slide to aprevious position subsequent to completion of a scroll movement of theWeb page. The previous position corresponds to a position of the chatwindow prior to the scroll movement of the Web page.

In another embodiment of the invention, an apparatus for facilitatinguser chat interactions includes at least one processor and a memory. Thememory stores machine executable instructions therein that, whenexecuted by the at least one processor, cause the apparatus to effectdisplay of a chat widget on one or more Web pages of a Websiteassociated with an enterprise. In response to a user selection inputcorresponding to the chat widget displayed on the Web page, theapparatus effects display of a chat window at a first predeterminedposition on a Web page of the Website. The chat window facilitates achat interaction between the user and an agent of the enterprise. Thedisplay of the chat window at the first predetermined position retainsdisplay of a substantial portion of the Web page to the user. Inresponse to an input indicative of provisioning of a text input from theuser, the apparatus repositions the chat window to a secondpredetermined position to display a virtual keyboard at a portion of theWeb page comprising the first predetermined position. In response to ascroll input corresponding to the Web page from the user during the chatinteraction between the user and the agent, the apparatus causes thechat window to scroll with the Web page and slide to a previous positionsubsequent to completion of a scroll movement of the Web page. Theprevious position corresponds to a position of the chat window prior tothe scroll movement of the Web page.

In another embodiment of the invention, a computer program product forfacilitating user chat interactions includes at least onecomputer-readable storage medium. The computer-readable storage mediumincludes a set of instructions which, when executed by one or moreprocessors, cause an electronic device to effect display of a chatwidget on one or more Web pages of a Website associated with anenterprise. In response to a user selection input corresponding to thechat widget displayed on the Web page, the electronic device effectsdisplay of a chat window at a first predetermined position on a Web pageof the Website. The chat window facilitates a chat interaction betweenthe user and an entity associated with the enterprise. The display ofthe chat window at the first predetermined position retains asubstantial portion of the Web page for display to the user. In responseto an input indicative of provisioning of a text input from the user,the electronic device repositions the chat window to a secondpredetermined position to enable display of a virtual keyboard at aportion of the Web page comprising the first predetermined position. Inresponse to a scroll input corresponding to the Web page from the userduring the chat interaction between the user and the entity, theelectronic device scrolls the chat window with the Web page and slidesthe chat window to a previous position subsequent to completion of ascroll movement of the Web page. The previous position corresponds to aposition of the chat window prior to the scroll movement of the Webpage.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of an apparatus configured to facilitate userchat interactions in accordance with an embodiment of the invention;

FIG. 2 shows an example representation of a Web page displayed on adisplay screen of a touch-enabled electronic device in accordance withan embodiment of the invention;

FIG. 3A shows an example representation of an electronic devicedisplaying a chat window on a Web page of a Website in response to userselection input of the chat widget is shown in accordance with anembodiment of the invention;

FIG. 3B shows an example representation of the electronic device of FIG.3A displaying the chat window repositioned to the second predeterminedposition on the Web page of a Website in accordance with an embodimentof the invention;

FIGS. 4A-4C depict example representations for illustrating arepositioning of a chat window in response to a Web page scroll inputprovided by a user in accordance with an embodiment of the invention;

FIGS. 5A-5D depict example representations for illustrating arepositioning of a chat window in response to a drag input provided by auser in accordance with an embodiment of the invention;

FIGS. 6A-6C depict example representations for illustrating minimizationof the chat window to a chat button in accordance with an embodiment ofthe invention;

FIGS. 7A and 7B depict example representations for illustration dynamicalteration of a size of the chat window in accordance with an embodimentof the invention; and

FIG. 8 is a flow diagram of an example method for facilitating a userchat interaction in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appendeddrawings is intended as a description of the present invention and isnot intended to represent the only forms in which the present inventionmay be constructed or used. However, the same or equivalent functionsand sequences may be accomplished by different forms.

Online visitors to an enterprise Website, hereinafter referred to asusers, may wish to seek assistance during their journey on the Website.For example, a user may need assistance on troubleshooting a feature ofa recently purchased product from the enterprise. In anotherillustrative example, a user may wish to reschedule a flight itinerary.Typically, a widget offering chat-based assistance is displayed on mostenterprise Websites. A user may click on the widget to initiate aninteraction with a customer support representative. Clicking on thewidget may result in a display of a chat window. Some chat applicationsmay provide a full screen view of the chat window. However, such fullscreen chat windows may prevent the user from scrolling the host Websitewhile the chat window is open. Further, in case of touch-enableddevices, a virtual keyboard may be displayed on the Web page when theuser wants to provision text input into the chat window. In some chatsolutions, the chat window may get pushed above a screen view of theWebsite when the virtual keyboard is displayed. As a result, a header ofthe chat widget may not be accessible unless the user scrolls up to atop of the chat window.

In some other chat solutions, the chat window may not occupy the entireviewable screen space and may instead be affixed to a bottom or a sideportion of the Web page to enable the user to scroll the host Websitewith the chat window open. However, a jarring flicker effect may occurwhen the user attempts to scroll the Web page with the chat window open.The movement of the chat window results due to the scrolling inputprovided by the user, which may cause the back-end server to recalculatethe position of the chat window on the Web page, thereby causing thejarring flicker effect. Moreover, when the user attempts to scroll theWebpage with the chat window open and a virtual keyboard displayed, theWeb page may appear locked and, in addition to the flickering, theWebsite may snap back to the top of the Web page, thereby preventing theuser from scrolling the Web page.

Various embodiments of the present invention provide a method,apparatus, and computer program product that overcome these and otherobstacles and provide additional benefits. More specifically, variousembodiments of the present invention disclose techniques forfacilitating user chat interactions in a hassle-free manner. The usercan scroll the host Website when the chat window and the virtualkeyboard are open without any jarring or flicker effect. Furthermore,the chat window is configured to be dynamically resized to fit theviewport of the electronic device if an orientation of the electronicdevice is such that a height of the chat window on top of the virtualkeyboard exceeds the screen height. The user may also drag the chatwindow to any desired position on the screen to view portion of theWebsite covered by the chat window. An example apparatus forfacilitating user chat interactions is explained with reference to FIG.1.

FIG. 1 is a block diagram of an apparatus 100 configured to facilitateuser chat interactions in accordance with an embodiment of theinvention. The term ‘user’ as used herein refers to an existing or apotential user of enterprise's products, services and/or informationofferings. The term ‘enterprise’ as used herein may refer to a bankingenterprise, an educational institution, a financial trading enterprise,an aviation company, a social media enterprise, a consumer goodsenterprise, or any such public or private sector enterprise.

A user may visit an enterprise interaction channel, such as anenterprise Website for a variety of purposes. For example, a user mayvisit the enterprise Website to learn about new offers, to make purchasetransactions, to pay bills, etc. In some scenarios, while browsing theenterprise Website the user may need assistance in comprehendinginformation on the Website or in performing an activity on the Website,and may need to engage in a one-to-one chat conversation with a customersupport representative of the enterprise. The term ‘facilitating userchat interactions’ as used herein refers to chat interactions betweenusers and customer support representatives, such as human or virtualagents, of the enterprise. In some example embodiments, the term userinteractions may also correspond to chat interactions between two usersof an enterprise's offerings, conducted on the enterprise Website.

The apparatus 100 includes at least one processor, such as a processor102, and a memory 104. It is noted that although the apparatus 100 isdepicted to include only one processor, the apparatus 100 may includeany number of processors therein. In an embodiment, the memory 104 iscapable of storing machine executable instructions, referred to hereinas platform instructions 105. Further, the processor 102 is capable ofexecuting the platform instructions 105. In an embodiment, the processor102 may be embodied as a multi-core processor, a single core processor,or a combination of one or more multi-core processors and one or moresingle core processors. For example, the processor 102 may be embodiedas one or more of various processing devices, such as a coprocessor, amicroprocessor, a controller, a digital signal processor (DSP), aprocessing circuitry with or without an accompanying DSP, or variousother processing devices including integrated circuits such as, forexample, an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA), a microcontroller unit (MCU), a hardwareaccelerator, a special-purpose computer chip, or the like. In anembodiment, the processor 102 may be configured to execute hard-codedfunctionality. In an embodiment, the processor 102 is embodied as anexecutor of software instructions, wherein the instructions mayspecifically configure the processor 102 to perform the algorithmsand/or operations described herein when the instructions are executed.

The memory 104 may be embodied as one or more volatile memory devices,one or more non-volatile memory devices, and/or a combination of one ormore volatile memory devices and non-volatile memory devices. Forexample, the memory 104 may be embodied as magnetic storage devices,such as hard disk drives, floppy disks, magnetic tapes, etc.; opticalmagnetic storage devices, e.g. magneto-optical disks; CD-ROM (compactdisc read only memory); CD-R (compact disc recordable); CD-R/W (compactdisc rewritable); DVD (Digital Versatile Disc); BD (BLU-RAY® Disc); andsemiconductor memories, such as mask ROM, PROM (programmable ROM), EPROM(erasable PROM), flash memory, RAM (random access memory), etc.

The memory 104 stores a chat application capable of being used by aremote Web server hosting the enterprise Website to facilitate chatinteractions on the Website. An instance of the chat application may bedownloaded on the Web server, which may then communicate with the chatapplication using application programming interfaces (APIs) tofacilitate user chat interactions. The chat application may also providelogic and routines to enable the repositioning of a chat window tovarious positions on the Web page, as will be explained later.

The apparatus 100 also includes an input/output module 106 (hereinafterreferred to as ‘I/O module 106’) and at least one communicationinterface, such as the communication interface 108. In an embodiment,the I/O module 106 may include mechanisms configured to receive inputsfrom, and provide outputs to, the user of the apparatus 100. To thateffect, the I/O module 106 may include at least one input interfaceand/or at least one output interface. Examples of the input interfacemay include, but are not limited to, a keyboard, a mouse, a joystick, akeypad, a touch screen, soft keys, a microphone, and the like. Examplesof the output interface may include, but are not limited to, a displaysuch as a light emitting diode display, a thin-film transistor (TFT)display, a liquid crystal display, an active-matrix organiclight-emitting diode (AMOLED) display, a microphone, a speaker, aringer, a vibrator, and the like.

In an example embodiment, the processor 102 may include I/O circuitryconfigured to control at least some functions of one or more elements ofthe I/O module 106, such as, for example, a speaker, a microphone, adisplay, and/or the like. The processor 102 and/or the I/O circuitry maybe configured to control one or more functions of the one or moreelements of the I/O module 106 through computer program instructions,for example, software and/or firmware, stored on a memory, for example,the memory 104, and/or the like, accessible to the processor 102.

The communication interface 108 may include several channel interfacesto communicate with a plurality of enterprise interaction channels. Somenon-limiting examples of the enterprise interaction channels may includea Web channel, i.e. an enterprise Website; a voice channel, i.e.voice-based customer support; a chat channel, i.e. a chat support; anative mobile application channel; a social media channel; and the like.Each channel interface may be associated with a respective communicationcircuitry such as, for example, a transceiver circuitry includingantenna and other communication media interfaces to connect to a wiredand/or wireless communication network. The communication circuitryassociated with each channel interface may, in at least some exampleembodiments, enable transmission of data signals and/or reception ofsignals from remote network entities, such as Web servers hostingenterprise Website or a server at a customer support or service centerconfigured to maintain real-time information related to interactionsbetween users and agents.

In at least one example embodiment, the channel interfaces areconfigured to receive up-to-date information related to thecustomer-enterprise interactions from the enterprise interactionchannels. In some embodiments, the information may also be collated fromthe plurality of devices used by the customers. To that effect, thecommunication interface 108 may be in operative communication withvarious customer touch points, such as electronic devices associatedwith the customers, Websites visited by the customers, devices used bycustomer support representatives, for example voice agents, chat agents,IVR systems, in-store agents, and the like, engaged by the customers andthe like.

The communication interface 108 may further be configured to receiveinformation related to current journeys of online visitors on enterpriseinteraction channels, such as enterprise Websites, in real-time andprovide the information to the processor 102. In at least someembodiments, the communication interface 108 may include relevant APIsto communicate with remote data gathering servers associated with suchenterprise interaction channels. Moreover, the communication between thecommunication interface 108 and the remote data gathering servers may berealized over various types of wired or wireless networks.

In an embodiment, various components of the apparatus 100, such as theprocessor 102, the memory 104, the I/O module 106, and the communicationinterface 108 are configured to communicate with each other via orthrough a centralized circuit system 110. The centralized circuit system110 may be various devices configured to, among other things, provide orenable communication between the components (102-108) of the apparatus100. In certain embodiments, the centralized circuit system 110 may be acentral printed circuit board (PCB) such as a motherboard, a main board,a system board, or a logic board. The centralized circuit system 110 mayalso, or alternatively, include other printed circuit assemblies (PCAs)or communication channel media.

The apparatus 100 as illustrated and hereinafter described is merelyillustrative of an apparatus that could benefit from embodiments of theinvention and, therefore, should not be taken to limit the scope of theinvention. It is noted that the apparatus 100 may include fewer or morecomponents than those depicted in FIG. 2. In an embodiment, theapparatus 100 may be implemented as a platform including a mix ofexisting open systems, proprietary systems, and third party systems. Inanother embodiment, the apparatus 100 may be implemented completely as aplatform including a set of software layers on top of existing hardwaresystems. In an embodiment, one or more components of the apparatus 100may be deployed in a Web Server. In another embodiment, the apparatus100 may be a standalone component in a remote machine connected to acommunication network and capable of executing a set of instructions,sequential and/or otherwise, to facilitate user chat interactions.Moreover, the apparatus 100 may be implemented as a centralized systemor, alternatively, the various components of the apparatus 100 may bedeployed in a distributed manner while being operatively coupled to eachother. In an embodiment, one or more functionalities of the apparatus100 may also be embodied as a client within devices, such as customers'devices. In another embodiment, the apparatus 100 may be a centralsystem that is shared by or accessible to each of such devices.

The facilitating of the user chat interactions by the apparatus 100 ishereinafter explained with reference to one user. It is noted theapparatus 100 may be caused to facilitate chat interactions for severalusers in a similar manner.

In at least one example embodiment, the processor 102 is configured to,with the content of the memory 104, cause the apparatus 100 to effectdisplay of a chat widget on one or more Web pages of a Websiteassociated with an enterprise. As explained above, the communicationinterface 108 is in operative communication with a Web server hostingthe enterprise Website. The processor 102 of the apparatus 100 maycause, for example by using chat application APIs to communicate withthe Web Server, to display a chat widget on one or more Web page of theWebsite. A user accessing the Website using a personal electronic devicemay view the chat widget displayed on the Web pages of the Website. Thedisplay of the chat widget is depicted in FIG. 2.

Referring now to FIG. 2, an example representation 200 of a Web page 202displayed on a display screen 204 of a touch-enabled electronic device206 is shown in accordance with an embodiment of the invention. Theelectronic device 206 is depicted to be a tablet device for illustrationpurposes. In some example embodiments, the electronic device 206 maycorrespond to any touch-enabled device, such as a Smartphone, atouch-enabled laptop or a desktop computer screen, a wearable device,and the like. The Web page 202 may be one of several Web pagesassociated with the enterprise Website. The Web page 202 is depicted todisplay content related to scheduling a flight trip for illustrationspurposes. As explained above, the enterprise may correspond to anyprivate or public sector enterprise and as such, the enterprise Websitemay display content related to products, services, and/or informationoffered by the corresponding enterprise. A user may visit the Website ofthe enterprise using a Web browser application installed on theelectronic device 206. In an example scenario, the Website, i.e. one ormore Web pages configuring the Website, may be hosted on a remote Webserver and the Web browser application may be configured to retrieve oneor more Web pages associated with the Website over a communicationnetwork. Some examples of the communication network may include wirednetworks, wireless networks, or a combination thereof. Some examples ofwired networks may include Ethernet, local area networks (LANs),fiber-optic cable networks, and the like. Some examples of wirelessnetworks may include cellular networks, such as GSM/3G/4G/CDMA networks,wireless LANs, blue-tooth or Zigbee networks, and the like. An exampleof a combination of wired and wireless networks may include theInternet.

The Web page 202 is depicted to display a chat widget 208 displayingtext: ‘Need Help, Let's Chat.’ In many example scenarios, users may wishto speak with a customer support representative of an enterprise suchas, for example, a human agent or a virtual agent capable of assistingthe users with their respective needs. Accordingly, a user may provide aselection input on the chat widget 208, for example a touch input asexemplarily depicted by 210, to initiate an interaction with thecustomer support representative of the enterprise.

Referring now to FIG. 1, in at least one example embodiment, theprocessor 102 is configured to, with the content of the memory 104,cause the apparatus 100 to effect display of a chat window at a firstpredetermined position on a Web page of the Website in response to auser selection input. As explained with reference to FIG. 2, a chatwidget, such as the chat widget 208, is displayed on one or more Webpages of an enterprise Website. A user seeking assistance may provide aselection input, such as the touch input 210 depicted in FIG. 2,corresponding to the chat widget. The apparatus 100 may be caused toreceive the user selection input using the communication interface 108.In an illustrative example, each Web page of the enterprise Website maybe tagged with Hyperlink Text Markup Language (HTML) tags or JavaScripttags, which invoke a call function if the tagged content on the Web pageis selected by a user. Accordingly, the touch input on the chat widgetmay be captured by the tags and recorded in a database in the Webserver, which may be then be relayed to communication interface 108 insubstantially real-time. The processor 102 of the apparatus 100 mayreceive information related to user selection input from thecommunication interface 108 and effect display of a chat window on theWeb page in response to the user selection input. The display of thechat window may be effected using relevant chat application APIs of thechat application stored in the memory 104 and instance of the chatapplication stored in the Web server hosting the enterprise Website.

In at least one example embodiment, the displayed chat windowfacilitates a chat interaction between the user and an agent of theenterprise. The agent of the enterprise may correspond to a human agentor a virtual agent, for example a chatbot, deployed by the enterprise toassist the users seeking assistance on the Website. The chat window maybe displayed at a first predetermined position on the Web page of theWebsite. In at least one example embodiment, the first predeterminedposition corresponds to a bottom-right corner portion of a viewport ofan electronic device displaying the Web page to the user. The term‘viewport’ as used herein refers to a visible area or a viewable portionof a display screen of the electronic device. It is understood that theviewport may vary with a type of the electronic device. For example, amobile phone may have a viewport of smaller size than that of a desktopcomputer. The display of the chat window at the first predeterminedposition, such as the bottom-right corner portion of the viewport, maybe performed to retain display of a substantial portion of the Web pageto the user. It is noted that the first predetermined position maycorrespond to any other position on the Web page, which retains displayof a substantial portion of the Web page to the user. The term‘substantial portion of the Web page’ as used herein implies that only afraction of a viewable portion of the Web page is covered by the chatwindow and that the user may still be able to view a majority of thecontent portions of the Web page. The display of the chat window at thefirst predetermined position is depicted in FIG. 3A.

Referring now to FIG. 3A, an example representation of an electronicdevice 300 displaying a chat window 302 on a Web page 304 of a Websitein response to user selection input of the chat widget is shown inaccordance with an embodiment of the invention. The Web page 304 isdepicted to be devoid of content for illustration purposes. It isunderstood that the Web page 304 may include content, such as thecontent displayed on the Web page 202.

As explained with reference to FIG. 1, the apparatus 100 may effectdisplay of the chat window in response to the user selection input onthe chat widget displayed on the Web page of the Website. The chatwindow 302 is depicted to be displayed in a first predeterminedposition, such as the bottom-right corner portion of the viewport, i.e.viewable area of the display screen, as depicted in FIG. 3A. The usermay provide an input, such as a touch input as exemplarily depicted byinput 306, in the text input area 308 of the chat window 302 to initiatea chat interaction with the agent of the enterprise.

Referring now to FIG. 1, in at least one example embodiment, theprocessor 102 is configured to, with the content of the memory 104,cause the apparatus 100 to reposition the chat window to a secondpredetermined position in response to an input indicative ofprovisioning of a text input from the user. In an illustrative example,information related to the touch input, such as the input 306, in thetext input area of a chat window may be communicated by the chatapplication APIs in the Web server to the communication interface 108 ofthe apparatus 100. The processor 102 of the apparatus 100 may then becaused to reposition the chat window to a second predetermined positionto enable display of a virtual keyboard at a portion of the Web pageincluding the first predetermined position. More specifically, theindication of provision of a text input in the text input area of thechat window may signal the Web server to cause display of the virtualkeyboard to enable the user to input textual entry in the text inputarea. The virtual keyboard is a native component of the electronicdevice and it is typically displayed on the bottom portion of theviewport, which encompasses the first predetermined position, such asthe bottom-right corner portion of the viewport. Accordingly, theapparatus 100 may reposition the chat window to a second predeterminedposition, such as for example, a position above the virtual keyboard asexemplarily depicted in FIG. 3B. More specifically, FIG. 3B shows anexample representation of the electronic device 300 of FIG. 3Adisplaying the chat window 302 repositioned to the second predeterminedposition on the Web page 304 of a Website in accordance with anembodiment of the invention. The repositioning of the chat window 302 tothe second predetermined position from the bottom-right corner portionof the viewport may be performed to accommodate a virtual keyboard, suchas the virtual keyboard 350, which is invoked in response to the userinput indicative of indicative of provisioning of a text input from theuser. As can be seen in FIG. 3B, the virtual keyboard 350 is placed onthe bottom portion of the viewport of the electronic device 300encompassing the bottom-right corner portion of the viewport, i.e. thefirst predetermined position. Accordingly, the apparatus 100 is causedto reposition the chat window 302 to accommodate the virtual keyboard350.

Referring now to FIG. 1, in at least one example embodiment, theprocessor 102 is configured to, with the content of the memory 104,cause the apparatus 100 to cause the chat window to scroll with the Webpage in response to a Web page scroll input provided by the user. Thechat window is then caused to slide to a previous position subsequent tocompletion of a scroll movement of the Web page. In at least one exampleembodiment, the processor 102 is caused to maintain a record of acurrent position of the chat window, for example the first predeterminedposition or the second predetermined position or any other position onthe keyboard in the memory 104. The storing of the current position ofthe keyboard facilitates sliding back of the chat window to a previousposition, i.e. a position of the chat window prior to the scrollmovement of the Web page.

In an illustrative example, the user may wish to learn about a new offerdisplayed on an enterprise Website and accordingly initiate a chatinteraction by clicking on the chat widget and then providing a queryinput in the text input area in the displayed chat window. Whileinteracting with the agent using the chat medium, the user may wish toselect specific portions of content related to the offer for which theuser needs clarification. Accordingly, the user may provide a scrollinput, for example a single continuous scroll input or multiple stepscroll inputs, on the Web page to view the desired content. The scrollinput may cause scroll movement of the Web page. In at least one exampleembodiment, the apparatus 100 may cause the chat window to scroll alongwith Web page and slide back to a previous position subsequent to thecompletion of the scroll movement of the Web page.

Typically, in conventional mechanisms, if the Web page is scrolled whenthe chat window (and/or virtual keyboard) is in open configuration, ajarring or flicker effect is observed as the Web page script at theback-end recalculates the position of the chat window. The split-secondcalculation of the chat window subsequent to scrolling of the Web pagecauses the jarring/flicker effect. The scrolling of the chat windowalong with Web page precludes the coupling of the chat window to the topof the keyboard or to the bottom-right corner portion of the viewport,thereby avoiding recalculation of the position of the chat window andthe associated jarring/flicker effect. The repositioning of the chatwindow is further explained with reference to FIGS. 4A, 4B and 4C.

FIGS. 4A-4C depict example representations for illustrating arepositioning of a chat window in response to a Web page scroll inputprovided by a user in accordance with an embodiment of the invention.More specifically, FIG. 4A shows an example representation 400 of ascroll input 402 being provided by a user on a Web page 404 with a chatwindow 406 and a virtual keyboard 408 open in a viewport of anelectronic device 410 in accordance with an embodiment of the invention.The Web page 404 is depicted to be devoid of content for illustrationpurposes. It is noted that the Web page 404 may include content, such astext content, images, and the like. FIG. 4B shows an examplerepresentation of the scrolling of the chat window 406 along with thescrolling of the Web page 404 in response to the scroll input 402provided by the user. As explained above, the apparatus 100 of FIG. 1may cause the chat window to scroll with the Web page and slide back toa previous position subsequent to completion of the scroll movement ofthe Web page. FIG. 4C shows an example representation of the chat window406 subsequent to sliding back to the previous position, or morespecifically the position of the chat window 406 prior to the receivingthe scroll input as depicted in FIG. 4A. Such scrolling of a chat windowprecludes the jarring/flicker effect caused due to recalculation of thechat window position in conventional mechanisms.

It is noted that FIGS. 4B and 4C are depicted to display only the chatwindow 406 for illustration purposes. It will be appreciated that thescrolling of the Web page 404 may be enabled with the chat window 406and the virtual keyboard 408 open and that the chat window 406 may slideto a previous position subsequent to the completion of the scrollmovement, as explained above. In addition to overcoming the drawback ofthe jarring flickering effect experienced in conventional mechanisms,such sliding of the chat window and the regaining its previous position,enables the user to the scroll the Web page when the virtual keyboard isopen, thereby improving the user interaction experience.

Referring now to FIG. 1, in at least one example embodiment, theprocessor 102 is configured to, with the content of the memory 104,cause the apparatus 100 to effect a movement of the chat window from acurrent position on the Web page to a new position on the Web pageselected by the user in response to a drag input corresponding to thechat window provided by the user. More specifically, in some examplescenarios, the user may wish to move the chat window from a currentlocation to a different location on the display screen to view thecontent of the Web page being covered by the chat window. The apparatus100 may accordingly be caused to recognize a drag input, for example ahold touch input on the chat header for a predefined duration of time,such as a few milliseconds to a second for example, followed by asliding touch input, provided by the user corresponding to the chatwindow and, accordingly, may facilitate movement of the chat window to alocation desired by the user, or as indicated by completion of the draginput. Such a repositioning of the chat window based on a drag input isexplained with reference to FIGS. 5A, 5B and 5C.

FIGS. 5A-5C depict example representations for illustrating arepositioning of a chat window in response to a drag input provided by auser in accordance with an embodiment of the invention. Morespecifically, FIG. 5A depicts an example representation of a chat window500 placed at a current position on a Web page 502 and a user providinga hold input 504 on a chat header section 506. FIG. 5B depicts anexample representation of a slide input 506 being provided by a usercorresponding to a chat window 500 to drag the chat window 500 on theWeb page 502 in accordance with an embodiment of the invention. Asexplained above, the apparatus 100 may be caused to receive informationrelated to the hold input 504 provided by the user and cause the chatwindow 500 to be responsive to the slide input 506 provided subsequentto the hold input 504, thereby facilitating dragging of the chat window500 to a new position, as exemplarily depicted in FIG. 5C. In FIG. 5C,the new position of the chat window 500 is depicted to be a bottomportion of the viewport of the electronic device. If the user providesan indication of providing an input in the text input area of the chatwindow 500, then a virtual keyboard may be displayed on top of the chatwindow 500. Such a scenario is depicted in FIG. 5D. More specifically, avirtual keyboard 550 is depicted to be displayed on top of the chatwindow 500. The user may provide a similar drag input, as explainedabove, on the chat window 500 to reposition the chat window 500 toanother position that does not overlap with the virtual keyboard 550.

In at least one example embodiment, the apparatus 100 is configured tocause the chat window to collapse to a predetermined minimum size inresponse to a user input indicative of minimizing a size of the chatwindow. Such a scenario is depicted in FIGS. 6A-6C. More specifically,FIG. 6A depicts an example representation of a user input 600 beingprovided by the user to minimize the chat window 602 in accordance withan embodiment of the invention. The user input 600 may be provided as atouch input on an icon 604 associated with minimizing the chat window.In at least one example embodiment, the apparatus 100 may cause the chatwindow 600 to collapse to a predetermined minimum size in response tothe user input 600. In at least one example embodiment, the chat windowin the predetermined minimum size configures a chat button, asexemplarily depicted in FIG. 6B. More specifically, FIG. 6B depicts achat button 650 positioned at a position of the chat window 600 prior tocollapsing to the predetermined minimum size in accordance with anembodiment of the invention. In some embodiments, the chat buttonconfigured by collapsing of the chat window 600 may be positioned at thefirst predetermined position, such as the bottom-right corner portion ofthe viewport, as exemplarily depicted in FIG. 6C. Further, in at leastone example embodiment, the apparatus 100 is configured to cause thechat window to regain a maximum size prior to collapsing to the minimumpredetermined size subsequent to receiving user input indicative ofmaximizing a size of the chat window, where the user input providedcorresponds to the chat button. For example, the user may provide aselection input of an icon 660 displayed on the chat button 650 toenable the chat window to regain the maximum size, such as the size ofthe chat window 600 depicted in FIG. 6A. The chat header and/or the chatbutton are depicted to be devoid of labels for illustration purposes. Inat least some embodiments, the chat header and/or the chat button maydisplay descriptive text labels, such as busy, offline, or an actionoriented text string such as open, close, and the like. Moreover, theuser may also drag the minimized chat button to a new location, maximizethe chat button to configure the chat window at the new location, andthereafter minimize the chat window to configure the chat button, again.

Referring now to FIG. 1, in at least one example embodiment, theapparatus 100 is caused to effect an alteration of a size of the chatwindow to fit completely within the viewport of the electronic devicesubsequent to repositioning of the chat window to the secondpredetermined position. As explained above, a chat window displayed to auser may be repositioned to a second predetermined position toaccommodate the virtual keyboard. The second predetermined position maybe a position above the virtual keyboard, as exemplarily depicted inFIG. 3B. In some example scenarios, a viewport of the electronic devicemay be associated with a limited size, such as for example a smartphoneviewport may not be able to accommodate the chat window positioned abovethe virtual keyboard in its current form. In such a scenario, theapparatus 100 may be caused to dynamically alter a size of the chatwindow to fit within the viewport of the electronic device. The dynamicalteration of a size of the chat window is further explained withreference to an illustrative example in FIGS. 7A and 7B.

FIGS. 7A and 7B depict example representations for illustration dynamicalteration of a size of the chat window in accordance with an embodimentof the invention. More specifically, FIG. 7A shows a chat window 702positioned at a second predetermined position above a virtual keyboard704 in accordance with an embodiment of the invention. As can be seen inFIG. 7A, for a current orientation, or more specifically, a portraitorientation of an electronic device 706, the chat window 702 and thevirtual keyboard 704 are capable of being displayed in full size withinthe viewport of the electronic device 706. However, if an orientation ofthe electronic device 706 is changed to a landscape orientation, thenthe chat window 702 on top of the virtual keyboard 704 may not be ableto fit within the viewport. Accordingly, the apparatus 100 may be causedto receive information related to a current orientation of theelectronic device 706 from the Web server which, in turn, may determinethe current orientation of the electronic device 706 based on activetags corresponding to the Web page. The processor 102 of the apparatus100 may be configured to dynamically alter the size of the chat window702, as exemplarily depicted by the altered size chat window 750displayed within the viewport of the electronic device 706 in FIG. 7B.Such dynamic altering of the size of the chat window may prevent theneed for the user to scroll to the top of the chat window to view thechat header section 760 or for any such purpose. An example chatinteraction between the user and the chat interaction is also depictedin the chat window 750. In some embodiments, the apparatus 100 may becaused to preclude dynamic alteration of the size of a chat window 702,and cause display only of the active field within the chat window, withthe chat header section 706 not visible or hidden to the user. The user,in such a scenario, may need to alter the orientation of the device orscroll up to view the chat header section 706.

A method for facilitating a user chat interaction on an enterpriseWebsite is explained with reference to FIG. 8.

FIG. 8 is a flow diagram of an example method 800 for facilitating auser chat interaction in accordance with an embodiment of the invention.The method 800 depicted in the flow diagram may be executed by, forexample, the apparatus 100 explained with reference to FIGS. 1 to 7B.Operations of the flowchart, and combinations of operation in theflowchart, may be implemented by, for example, hardware, firmware, aprocessor, circuitry, and/or a different device associated with theexecution of software that includes one or more computer programinstructions. The operations of the method 800 are described herein withhelp of the apparatus 100. For example, one or more operationscorresponding to the method 800 may be executed by a processor, such asthe processor 102 of the apparatus 100. Although the one or moreoperations are explained herein to be executed by the processor alone,it is understood that the processor is associated with a memory, such asthe memory 104 of the apparatus 100, which is configured to storemachine executable instructions for facilitating the execution of theone or more operations. The operations of the method 800 can bedescribed and/or practiced by using an apparatus other than theapparatus 100. The method 800 starts at operation 802.

At operation 802 of the method 800, display of a chat widget on one ormore Web pages of a Website associated with an enterprise is effected bya processor, such as the processor 102 of the apparatus 100 explainedwith reference to FIG. 1. The display of the chat widget may beperformed to offer chat-based assistance to users visiting theenterprise Website. The display of the chat widget may be performed asdepicted in FIG. 2 and is not explained again herein.

At operation 804 of the method 800, display of a chat window at a firstpredetermined position on a Web page of the Website is effected by theprocessor in response to a user selection input corresponding to thechat widget displayed on the Web page. As explained with reference toFIGS. 2 and 3A, the user may provide a touch input on the chat widgetdisplayed on the Web page of the Website to seek assistance from anagent, i.e. a customer support representative, of the enterprise.Subsequent to providing such an input, a chat window, such as the chatwindow depicted in FIG. 3A may be displayed to the user at the firstpredetermined position. In an example embodiment, the firstpredetermined position may correspond to a bottom-right corner portionof the viewport of the electronic device. In some embodiments, the chatwindow may be displayed at a position on the Web page configured toretain display of a substantial portion of the Web page to the user. Thechat window is capable of facilitating a chat interaction between theuser and an agent associated with the enterprise.

At operation 806 of the method 800, repositioning of the chat window toa second predetermined position is caused by the processor in responseto an input indicative of provisioning of a text input from the user.More specifically, the user may click on a text input area to initiatetext input corresponding to the chat interaction with the agent. Inresponse to such an input, a virtual keyboard may be displayed to theuser. The chat window may be repositioned to a second predeterminedposition to enable display of a virtual keyboard at a portion of the Webpage including the first predetermined position. In an illustrativeexample, if the chat window was initially positioned at the bottom-rightcorner portion of the viewport, then upon display of the virtualkeyboard, the chat window may be repositioned on top of the virtualkeyboard, as depicted in FIG. 3B.

At operation 808 of the method 800, the chat window is caused to scrollwith the Web page by the processor in response to a scroll inputcorresponding to the Web page from the user. As explained above, thedisplay of the chat window and the virtual keyboard retains a displayview of a substantial portion of the Web page. The user may provide ascroll input corresponding to the Web page during the chat interactionbetween the user and the agent. The scroll input causes a scrollmovement of the Web page. The chat window is caused to move with the Webpage and then slide back to a previous position subsequent to completionof a scroll movement of the Web page. The previous position correspondsto a position of the chat window prior to the scroll movement of the Webpage. Such movement of the chat window precludes the need to recalculatethe position of the chat window in response to the scroll input andthereby a jarring/flickering effect is precluded.

In at least one example embodiment, a movement of the chat window may becaused by the processor in response to a drag input corresponding to thechat window from the user. The chat window may be moved from a currentposition on the Web page to a new position on the Web page selected bythe user. Further, the chat window may be caused to collapse to apredetermined minimum size in response to a user input indicative ofminimizing a size of the chat window. The chat window in thepredetermined minimum size may configure a chat button as depicted inFIG. 6B. In an embodiment, the chat button is configured to bepositioned at a position of the chat window prior to collapsing to thepredetermined minimum size. In an embodiment, the chat button isconfigured to be positioned at the first predetermined positionsubsequent to the collapsing of the chat window to the predeterminedminimum size. Further, the chat window may be caused to regain a maximumsize prior to collapsing to the minimum predetermined size subsequent toreceiving user input on the chat button indicative of maximizing a sizeof the chat window. Some examples of positioning of the chat button aredepicted in FIGS. 6B and 6C and are not explained again herein.

In an example embodiment, an alteration of a size of the chat window mayalso be effected to fit completely within the viewport of the electronicdevice subsequent to repositioning of the chat window to the secondpredetermined position. The alteration of the size of the chat windowmay be performed as explained with reference to FIGS. 7A and 7B and isnot explained herein.

Various embodiments disclosed herein provide numerous advantages. Thetechniques disclosed herein facilitate user chat interactions in ahassle-free manner. The user can scroll the host Website when the chatwindow and the virtual keyboard are open. Moreover, any jarring orflicker effect due to the scroll input is also precluded. Furthermore,the chat window is configured to be dynamically resized to fit theviewport of the electronic device if an orientation of the electronicdevice is such that a height of the chat window on top of the virtualkeyboard exceeds the screen height. The user may also drag the chatwindow to any desired position on the screen to view portion of theWebsite covered by the chat window.

Although various embodiments have been explained with reference to chatinteraction between users and agents on the enterprise Website, in someembodiments the chat interaction may be conducted between two users ofthe Website on the Web page of the enterprise. For example, a user maysee a friend, relative, or acquaintance online and seek assistance byclicking on an active widget corresponding to another user. In anillustrative example, an enterprise Website may correspond to a socialmedia Website, such as Facebook®, and the user may chat with a friend onthe social media Website using the chat window and the virtual keyboardas depicted in FIG. 3B. The scroll input on the Web page correspondingto the social media Website may cause the chat window to scroll with theWeb page and slide to a previous position as explained in FIGS. 4A and4B.

The disclosed method 800 may be implemented using software includingcomputer-executable instructions stored on one or more computer-readablemedia, e.g. non-transitory computer-readable media, such as one or moreoptical media discs; volatile memory components, e.g. DRAM or SRAM); ornonvolatile memory or storage components, e.g. hard drives orsolid-state nonvolatile memory components, such as Flash memorycomponents, and executed on a computer, e.g. any suitable computer orimage processor embedded in a device, such as a laptop computer, netbook, Web book, tablet computing device, smart phone, or other mobilecomputing device. Such software may be executed, for example, on asingle local computer or in a network environment, e.g. via theInternet, a wide-area network, a local-area network, a remote Web-basedserver, a client-server network, such as a cloud computing network, orother such network using one or more network computers. Additionally,any of the intermediate or final data created and used duringimplementation of the disclosed methods or systems may also be stored onone or more computer-readable media, e.g. non-transitorycomputer-readable media, and are considered to be within the scope ofthe disclosed technology. Furthermore, any of the software-basedembodiments may be uploaded, downloaded, or remotely accessed through asuitable communication means. Such suitable communication means include,for example, the Internet, the World Wide Web, an intranet, softwareapplications, cable, including fiber optic cable, magneticcommunications, electromagnetic communications, including RF, microwave,and infrared communications, electronic communications, or other suchcommunication means.

The embodiments illustrated and described herein as well as embodimentsnot specifically described herein but within the scope of aspects of theinvention constitute examples for facilitating user chat interactions.For example, the elements illustrated and described with reference toFIGS. 1 to 8, when configured, under control of the processor 102 andcomputer program code in the memory 104 to perform the operationsillustrated and described with reference to FIGS. 1 to 7B, constituteeffecting display of a chat widget on one or more Web pages of a Websiteassociated with an enterprise; effecting display of a chat window at afirst predetermined position on a Web page of the Website in response toa user selection input corresponding to the chat widget displayed on theWeb page, the chat window capable of facilitating a chat interactionbetween the user and an entity associated with the enterprise, thedisplay of the chat window at the first predetermined positionconfigured to retain display of a substantial portion of the Web page tothe user; repositioning the chat window to a second predeterminedposition in response to an input indicative of provisioning of a textinput from the user to enable display of a virtual keyboard at a portionof the Web page comprising the first predetermined position; and causingthe chat window to scroll with the Web page in response to a scrollinput corresponding to the Web page from the user during the chatinteraction between the user and the agent, and slide to a previousposition subsequent to completion of a scroll movement of the Web page,wherein the previous position corresponds to a position of the chatwindow prior to the scroll movement of the Web page.

Although the invention has been described with reference to specificexemplary embodiments, it is noted that various modifications andchanges may be made to these embodiments without departing from thebroad spirit and scope of the invention. For example, the variousoperations, blocks, etc. described herein may be enabled and operatedusing hardware circuitry, for example complementary metal oxidesemiconductor (CMOS) based logic circuitry; firmware; software and/orany combination of hardware, firmware, and/or software, for exampleembodied in a machine-readable medium. For example, the apparatuses andmethods may be embodied using transistors, logic gates, and electricalcircuits, for example application specific integrated circuit (ASIC)circuitry and/or in Digital Signal Processor (DSP) circuitry.

Particularly, the apparatus 100, the processor 102, the memory 104, theI/O module 106, and the communication interface 108 may be enabled usingsoftware and/or using transistors, logic gates, and electrical circuits,for example integrated circuit circuitry such as ASIC circuitry. Variousembodiments of the invention may include one or more computer programsstored or otherwise embodied on a computer-readable medium, wherein thecomputer programs are configured to cause a processor or computer toperform one or more operations, for example operations explained hereinwith reference to FIG. 8. A computer-readable medium storing, embodying,or encoded with a computer program, or similar language, may be embodiedas a tangible data storage device storing one or more software programsthat are configured to cause a processor or computer to perform one ormore operations. Such operations may be, for example, any of the stepsor operations described herein. In some embodiments, the computerprograms may be stored and provided to a computer using any type ofnon-transitory computer readable media. Non-transitory computer readablemedia include any type of tangible storage media. Examples ofnon-transitory computer readable media include magnetic storage media,such as floppy disks, magnetic tapes, hard disk drives, etc.; opticalmagnetic storage media, e.g. magneto-optical disks; CD-ROM (compact discread only memory); CD-R (compact disc recordable); CD-R/W (compact discrewritable); DVD (Digital Versatile Disc); BD (BLU-RAY® Disc); andsemiconductor memories, such as mask ROM, PROM (programmable ROM), EPROM(erasable PROM), flash memory, RAM (random access memory), etc.Additionally, a tangible data storage device may be embodied as one ormore volatile memory devices, one or more non-volatile memory devices,and/or a combination of one or more volatile memory devices andnon-volatile memory devices. In some embodiments, the computer programsmay be provided to a computer using any type of transitory computerreadable media. Examples of transitory computer readable media includeelectric signals, optical signals, and electromagnetic waves. Transitorycomputer readable media can provide the program to a computer via awired communication line, e.g. electric wires, and optical fibers, or awireless communication line.

Various embodiments of the invention, as discussed above, may bepracticed with steps and/or operations in a different order, and/or withhardware elements in configurations, which are different than thosewhich, are disclosed. Therefore, although the invention has beendescribed based upon these exemplary embodiments, it is noted thatcertain modifications, variations, and alternative constructions may beapparent and well within the spirit and scope of the invention.

Although various exemplary embodiments of the invention are describedherein in a language specific to structural features and/ormethodological acts, the subject matter defined in the appended claimsis not necessarily limited to the specific features or acts describedabove. Rather, the specific features and acts described above aredisclosed as exemplary forms of implementing the claims.

The invention claimed is:
 1. A computer-implemented method, comprising:effecting, by a processor, display of a chat widget in a viewport of adisplay screen of an electronic device and on one or more Web pages of aWebsite associated with an enterprise; effecting, by the processor,display of a chat window at a first position relative to a Web page ofthe Website in response to a user selection input corresponding to thechat widget displayed on the Web page, the chat window facilitating achat interaction between a user and an agent associated with theenterprise, the display of the chat window at the first positionconfigured to retain display of a substantial portion of the Web page tothe user; in response to an input indicative of provisioning of a textinput from the user, repositioning, by the processor, the chat window toa second position relative to the Web page to display a virtual keyboardat a portion of the Web page comprising the first position andpreventing, by the processor, coupling of the chat window to a topportion of the virtual keyboard; storing, by said processor, anindication of a position of the chat window relative to the viewport ofthe display screen when the chat window is displayed at the secondposition relative to the Web page; in response to a scroll inputcorresponding to the Web page from the user during the chat interactionbetween the user and the agent, causing the chat window, by theprocessor, to scroll with the Web page without recalculating theposition of the chat window during the scrolling the chat window withthe Web page to maintain the chat window at the second position relativeto the Web page during a scroll movement of the Web page that is basedon the scroll input; and subsequent to completion of said scrollmovement of the Web page, sliding, by the processor, the chat window tothe stored position relative to the viewport of the display screenwithout recalculating the position of the chat window during the slidingthe chat window to the stored position relative to the viewport of thedisplay screen, and wherein the sliding the chat window to the storedposition relative to the viewport of the display screen subsequent tothe scroll movement comprises positioning the chat window at a thirdposition relative to the Web page.
 2. The method of claim 1, wherein thefirst position corresponds to a portion of the Web page that isdisplayed at a bottom-right corner portion of the viewport at a timewhen the user selection input is received.
 3. The method of claim 2,further comprising: effecting, by the processor, a dynamic alteration ofa size of the chat window to fit completely within the viewport of thedisplay screen subsequent to repositioning of the chat window to thesecond position.
 4. The method of claim 3, wherein the electronic deviceis one of a mobile phone, a Smartphone, a tablet device, and a wearabledevice.
 5. The method of claim 1, further comprising: in response to adrag input from the user with regard to the chat window, causing, by theprocessor, a repositioning of the chat window from the third positionrelative to the Web page to a fourth position relative to the Web page,the fourth position selected by the user.
 6. The method of claim 1,further comprising: causing the chat window to collapse to apredetermined minimum size, by the processor, in response to a userinput indicative of minimizing a size of the chat window, the chatwindow in the predetermined minimum size configuring a chat button. 7.The method of claim 6, wherein the chat button is configured to bepositioned at a same location as that of the chat window prior tocollapsing to the predetermined minimum size.
 8. The method of claim 6,wherein the chat button is configured to be positioned at the firstposition subsequent to the collapsing of the chat window to thepredetermined minimum size.
 9. The method of claim 6, furthercomprising: causing the chat window, by the processor, to regain amaximum size prior to collapsing to the minimum predetermined sizesubsequent to receiving user input indicative of maximizing a size ofthe chat window, the user input provided corresponding to the chatbutton.
 10. The method of claim 1, wherein the agent is one of a humanagent and a virtual agent.
 11. An apparatus, comprising: at least oneprocessor; a display screen; and a memory having stored therein machineexecutable instructions, that when executed by the at least oneprocessor, cause the apparatus to: effect display of a chat widget in aviewport of the display screen and on one or more Web pages of a Websiteassociated with an enterprise; effect display of a chat window at afirst position relative to a Web page of the Website in response to auser selection input corresponding to the chat widget displayed on theWeb page, the chat window facilitating a chat interaction between a userand an agent of the enterprise, the display of the chat window at thefirst position configured to retain display of a substantial portion ofthe Web page to the user; in response to an input indicative ofprovisioning of a text input from the user, reposition the chat windowto a second position relative to the Web page to display a virtualkeyboard at a portion of the Web page comprising the first position andprevent coupling of the chat window to a top portion of the virtualkeyboard; store an indication of a position of the chat window relativeto the viewport of the display screen when the chat window is displayedat the second position relative to the Web page; in response to a scrollinput corresponding to the Web page from the user during the chatinteraction between the user and the agent, cause the chat window toscroll with the Web page without recalculating of the position of thechat window during the scrolling the chat window with the Web page tomaintain the chat window at the second position relative to the Web pageduring a scroll movement of the Web page that is based on the scrollinput; and subsequent to completion of said scroll movement of the Webpage, slide the chat window to the stored position relative to theviewport of the display screen without recalculating the position of thechat window during the sliding the chat window to the stored positionrelative to the viewport of the display screen, wherein the sliding thechat window to the stored position relative to the viewport of thedisplay screen subsequent to the scroll movement comprises positioningthe chat window at a third position relative to the Web page.
 12. Theapparatus of claim 11, wherein the first position corresponds to aportion of the Web page that is displayed at a bottom-right cornerportion of the viewport at a time when the user selection input isreceived.
 13. The apparatus of claim 12, wherein the apparatus isfurther caused to: effect a dynamic alteration of a size of the chatwindow to fit completely within the viewport of the display screensubsequent to repositioning of the chat window to the second position.14. The apparatus of claim 11, wherein the apparatus is further causedto: in response to a drag input from the user with regard to the chatwindow, cause a repositioning of the chat window from the third positionrelative to the Web page to a fourth position relative to the Web page,the fourth position selected by the user.
 15. The apparatus of claim 11,wherein the apparatus is further caused to: cause the chat window tocollapse to a predetermined minimum size in response to a user inputindicative of minimizing a size of the chat window, the chat window inthe predetermined minimum size configuring a chat button.
 16. Theapparatus of claim 15, wherein the chat button is configured to bepositioned at one of: a position of the chat window prior to collapsingto the predetermined minimum size; and the first position, subsequent tothe collapsing of the chat window to the predetermined minimum size. 17.A computer-implemented method, comprising: effecting, by a processor,display of a chat window at a first position relative to a Web page of aWebsite associated with an enterprise, the Web page displayed in aviewport of a display screen of an electronic device and the chat windowfacilitating a chat interaction between a user and an agent associatedwith the enterprise; in response to an input indicative of provisioningof a text input from the user, repositioning the chat window to a secondposition relative to the Web page to display a virtual keyboard at aportion of the Web page comprising the first position and preventingcoupling of the chat window to a top portion of the virtual keyboard;storing, by the processor, an indication of a position of the chatwindow relative to the viewport of the display screen when the chatwindow is displayed at the second position relative to the Web page; inresponse to a scroll input directed to the Web page received from theuser, causing the chat window, by the processor, to scroll with the Webpage without recalculating the position of the chat window during thescrolling the chat window with the Web page to maintain the chat windowat the second position relative to the Web page during a scroll movementof the Web page that is based on the scroll input; subsequent tocompletion of the scroll movement of the Web page, sliding the chatwindow to the stored position relative to the viewport of the displayscreen without recalculating the position of the chat window byscrolling the chat window with during the sliding the chat window to thestored position relative to the viewport of the display screen, whereinthe sliding the chat window to the stored position relative to theviewport of the display screen subsequent to the scroll movementcomprises positioning the chat window at third position relative to theWeb page.